<!doctype html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
          integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">

    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询（media queries）功能 -->
    <!-- 警告：通过 file:// 协议（就是直接将 html 页面拖拽到浏览器中）访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
    <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->

</head>
<body>

<div class="page-header"><h1>web-kafka</h1></div>
<div class="row" id="app">
    <div class="col-md-4">
        <div style="margin-left: 10px;">
            <div class="input-group">
                <input type="text" class="form-control" placeholder="填写kafkaIP，多个IP以半角逗号（,）分割">
                <span class="input-group-btn">
            <button class="btn btn-default" type="button">Go!</button>
          </span>
            </div><!-- /input-group -->

            <div>
                {{ message }}
            </div>
            <div class="checkbox">
                <label v-for="topic in topics" style="margin: 6px;">
                    <input type="checkbox"> {{ topic.text}}
                </label>
            </div>
            <div>
                <button class="btn btn-default" style="float:right" type="submit">接收选中topic数据</button>
            </div>
        </div>
        <div>

        </div>
    </div>
    <div class="col-md-8">
        <button class="btn btn-default" style="margin-bottom: 5px;" v-on:click="clearMessage"> 清空数据</button>
        <div style="border: 1px solid #ccc; width: 95%;height: 800px; border-radius: 10px; overflow-y: scroll"
             id="messageText">
            <p style="margin: 3px;"> 收到数据如下：</p>
            <p v-for="msg in msgs" style="margin:3px;">{{ msg }}</p>
        </div>

    </div>
</div>


<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery，所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"
        integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ"
        crossorigin="anonymous"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"
        integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd"
        crossorigin="anonymous"></script>
<!-- vue.js cdn -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<!-- axios cdn -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            message: '订阅topic',
            msgs: [
                "asdfasdfasdf",
            ],
            topics: [
                {text: "student"},
                {text: "teacher"},
                {text: "student"},
                {text: "teacher"},
                {text: "student"},
                {text: "teacher"},
                {text: "student"},
                {text: "teacher"},
                {text: "student"},
                {text: "teacher"},
                {text: "student"},
            ]
        },
        methods: {
            clearMessage: function () {
                this.msgs = []
            },
            getTopic() {
                this.topics = [{text: "ssss"}]
                axios({//格式a
                    method: 'get',
                    url: 'http://127.0.0.1:8080/topics'
                }).then(resp => {
                    console.log(resp.data.data);
                    this.topics = resp.data.data;
                    this.msgs.push("asdfddddddd")
                    console.log(resp.data.data);
                }).catch(resp => {
                    console.log('请求失败：' + resp.status + ',' + resp.statusText);
                });
            },
            websocketFun() {
                var ws = new WebSocket("ws://127.0.0.1:8080/ws/user1");
                // ws.onmessage = function(event) {
                //     console.log(event.data)
                //     // this.msgs.push(event.data)
                //     this.msgs.push("asdfddddddd")
                // };

                ws.onmessage = (e) => {
                    console.log(e)
                    this.msgs.push(event.data)
                    this.msgs.push("asdfddddddd")

                    var m_doc = document.getElementById("messageText")
                    m_doc.scrollTop = m_doc.scrollHeight;

                };

                // function sendMessage(event) {
                //     var input = document.getElementById("messageText")
                //     ws.send("eeee")
                //     input.value = ''
                //     event.preventDefault()
                // }
            }

        },
        created: function () {
            this.getTopic(),
                this.websocketFun()
        }
    })
</script>
</body>
</html>
